sps84 (Normal User)
Expert
Messaggi: 202
Iscritto: 11/02/2009
|
Ciao a tutti, sto iniziando a fare qualche disegno sulla mia form, ora ho un rettangolo e riesco correttamente a ruoterlo su se stesso cambiando i parametri ad ogni compilazione . Ho aggiunto una trackBar con valore Max 360 (che sarebbero i gradi) e come angolo di rotazione ora passo il valore della trackBar, ovviamente compilando non ruota di niente perchè il valore iniziale è 0.
Domanda:
1) a questo link http://msdn.microsoft.com/en-us/library/system.windows.for ... ho trovato un metodo per ridisegnare il rettangolo ma viene una schifezza praticamente usa il metodo "this.Invalidate(RcDraw);". Esiste un metodo piu' decente di continuare a ridisegnare l'area grafica in continuo?
Codice sorgente - presumibilmente C++ |
int x = 800; int y = 800; private Rectangle rect = new Rectangle((800 / 2)- 50, (800/2) -50, 100, 100); private void Form1_Paint(object sender, PaintEventArgs e) { Pen pen = new Pen(Color.Black, 1.0f); Point p = new Point((x / 2), (y / 2));//Centro del form //Disegno una croce per trovare il centro tipo assi cartesiani e.Graphics.DrawLine(pen, new Point(0, (y / 2)), new Point(x, (y / 2))); e.Graphics.DrawLine(pen, new Point((x/2),0), new Point((x/2),y)); //Matrix per rotazione Matrix matrix = new Matrix(); float ang = trackBarAngle.Value; matrix.RotateAt(ang,p); e.Graphics.Transform = matrix; e.Graphics.DrawRectangle(pen, rect); } private void trackBarAngle_Scroll(object sender, EventArgs e) { labelAngle.Text = trackBarAngle.Value.ToString(); this.Invalidate(rect); }
|
|